Rails · Sidekiq · MySQL
OXBOW
Checkout broke on the biggest sale weekend of the year
A card vault upgrade turned every third-party wallet payment into a timeout. OXBOW found the failing call in seventeen minutes, on a Saturday, with two people on.
- What they build
- Outdoor gear, direct to customer
- Town
- Pittsburgh, PA
- Size
- 9 engineers
- 17 min
- median time from alert to the named commit, down from 2 hours
- $41,200
- of checkout revenue recovered that weekend
- 0.02%
- error rate across the sale, down from 1.4%
Devin Park
Director of engineering, OXBOW
Two of us were on that Saturday. The issue had already read the stack, the release and the vendor's timeout for us.
OXBOW sells about 40% of its year in nine days. The engineering team is nine people, and on the Saturday of the fall sale it is two.
The card vault had been upgraded on the Thursday. It passed staging, it passed a full checkout in production, and it quietly broke wallet payments — the ones where the customer never types a number — because the new client sent an idempotency key the vendor's older endpoint rejected after an eight-second wait.
Seventeen minutes
The alert rule was written for exactly this: more than fifty events in five minutes on the checkout project pages whoever is on call. It fired at 9:14 AM ET.
- The issue was already grouped — 612 events, one fingerprint, one route.
- The trace showed 8,000 ms sitting in a single outbound call, with the queries around it healthy.
- Suspect commits named the vault upgrade and the two people who reviewed it.
The rollback shipped at 9:31 AM ET. Nobody opened a log file.
What it saved
OXBOW puts the recovered revenue at $41,200, which is the difference between that Saturday's wallet conversion and the four Saturdays before it. The error rate across the whole nine days came in at 0.02%, down from 1.4% the year before.
The less countable part: the team now ships on Thursdays again. For two years they had a rule against deploying inside a sale week, which mostly meant a queue of forty changes going out together on the Monday after — the riskiest deploy of the quarter, made deliberately.
Catch the next one in four minutes.
Install the SDK, deploy, and watch the first exception arrive grouped, traced and assigned. Free for 5,000 events a month.